joenoonefandomcom-20200213-history
ZoneSetup
=More Info= *Zones Best Practices *see THIS website for info. * Blastwave also has a great article. *Here and here are Sun BigAdmin sections on Zones. *Adding Non-Global Zone Access to Specific File Systems in the Global Zone * Here is the Solaris 10 Solaris "Containers-Resource Management and Solaris Zones" manual. *Zone Resource Management **Solaris process scheduling =Useful Commands= *To see all the zones on a system(i.e. if your not in the global zone) arp -a|grep SP|awk '{print $2}' *To see configured/installed zones (from the global zone): zoneadm list -cv *The two main commands are zoneadm and zonecfg. *Displaying Solaris Zone Status/Configuration Use zoneadm list on the global zone server to show status of zone # /usr/sbin/zoneadm list -vi to show status of all installed zones (i-stands for installed) # /usr/sbin/zoneadm list -vc to show status of all configured zones (c-stands for configured which includes installed zones). Use zonecfg -z with the info option to list a specific zone configuration. # zonecfg -z info The zonecfg command can be used to list the configuration of a current zone. ** The zonename must be specified. ** =Configure a Zone= FROM SCRATCH *You can create the zones interactively using zonecfg command, or use a config file like this: create -b set zonepath=/opt/zones/test1 set autoboot=true add net set address=172.24.199.23/24 set physical=bge0 end add inherit-pkg-dir set dir=/usr end add inherit-pkg-dir set dir=/lib end add inherit-pkg-dir set dir=/sbin end add inherit-pkg-dir set dir=/platform end add fs set dir=/u1 set special=/u1/test1 set type=lofs end *To use the above file with the above config file you would do: # zonecfg -z -f *The root directory (i.e."/u1/zones") needs to already exist, but the zoneconfig will create the directory where the zone resides (i.e. "/u1/zones/sun2q"). FROM EXISTING ZONE *To copy an existing zone to make a new one : # zonecfg -z sun2q export | sed -e 's/sun2q/sun3q/g' | zonecfg -z sun3q sun3q: No such zone configured Use 'create' to begin configuring a new zone. Ignore the error messages - it worked. You can verify the config by doing "zonecfg -z sun3q export" # zoneadm list -vc ID NAME STATUS PATH 8 sun2q running /opt/zones/sun2q - sun3q configured /opt/zones/sun3q *When cloning, any directories referenced in the "fs:" section must be manually created - in this case the "/u1/sun3q" (which in the zone will appear as "/u1"). *NOTE - this configures the zone, but does not actually install it. "Installing" means actually setting up the zone operating system & configuration. =Install / Clone New Zone= *There are two approaches to setting up the new zone - Installing or Cloning an existing zone. INSTALLING *To install the newly-configured zone: # zoneadm -z oraappd1 install Preparing to install zone . Creating list of files to copy from the global zone. Copying <2582> files to the zone. Initializing zone product registry. Determining zone package initialization order. Preparing to initialize <1690> packages on the zone. Initialized <1690> packages on zone. Zone is initialized. Installation of these packages generated errors: Installation of <2> packages was skipped. Installation of these packages generated warnings: The file contains a log of the zone installation. CLONING *Use the zoneadm -z clone command. NOTE - the zone you are cloning must not be running. *The cloning operation will output any errors (such as using the same IP address). Using the above example: # mkdir /u1/sun3q # zoneadm -z sun3q clone sun2q zoneadm: zone 'sun3q': clone operation is invalid for running zones. # zoneadm -z sun2q halt # zoneadm -z sun3q clone sun2q WARNING: network address '172.24.199.17' is configured in both zones. Cloning zonepath /opt/zones/sun2q... =Automating Initialization of New Zone= At this point it is like a fresh Solaris install. To skip the setup stuff, create a sysidcfg file (as you would for jumpstart) and put it in the etc dir of the zone (in this case /zones/sun2q/root/etc/ directory) terminal=vt100 network_interface=primary {hostname= default_route= ip_address= netmask=255.255.255.0 protocol_ipv6=no} timezone=US/Eastern system_locale=C timeserver=localhost root_password=30can57mYZxCg name_service=DNS {domain_name= name_server=10.0.0.1,10.0.0.2} security_policy=none nfs4_domain=dynamic Note: A separate module will request the NFSv4 domain parameter used by the nfsmapid command. To complete a hands-off initial zone configuration, edit the file default/nfs, uncomment the NFSMAPID_DOMAIN parameter, and set the domain to the desired NFSv4 domain (see here for details): # cd /zones/sun2q/root/etc # vi default/nfs (uncomment) NFSMAPID_DOMAIN=domain # touch .NFS4inst_state.domain =Starting the New Zone= Time to fire this puppy up!! # zoneadm -z sun2q boot Next, go on the console (use ~. to exit console) and Perform the Internal Zone Configuration if necessary : # zlogin -C sun2q If you are having problems, try using failsafe mode # zlogin -S sun2q If you didn't setup the NFSv4 domain (see above), the first time you start it up and go to the console you'll see this (go with the default): - NFSv4 Domain Name ------------------------------------------------------------ NFS version 4 uses a domain name that is automatically derived from the system's naming services. The derived domain name is sufficient for most configurations. In a few cases, mounts that cross domain boundaries might cause files to appear to be owned by "nobody" due to the lack of a common domain name. The current NFSv4 default domain is: "wgresorts.com" NFSv4 Domain Configuration ---------------------------------------------- X Use the NFSv4 domain derived by the system [ ] Specify a different NFSv4 domain -------------------------------------------------------------------------------- Esc-2_Continue Esc-6_Help after which the zone will reboot, and then it's good to go. rebooting system due to change(s) in /etc/default/init Zone rebooting SunOS Release 5.10 Version Generic_125100-09 64-bit Copyright 1983-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Hostname: reportsq01 reportsq01 console login: =Modifying Zones with ZONECFG= To modify Zones you can use zonecfg. If you use it interactively (i.e. "zonecfg -z " it's a cisco-like interactive interface (i.e. different levels). You can also just issue commands without using the interactive mode, such as : # zonecfg -z sun2q info zonename: sun2q zonepath: /opt/zones/sun2q autoboot: true pool: limitpriv: inherit-pkg-dir: dir: /lib inherit-pkg-dir: dir: /platform inherit-pkg-dir: dir: /sbin inherit-pkg-dir: dir: /usr fs: dir: /u1 special: /u1/sun2q raw not specified type: lofs options: [] net: address: 172.24.199.17/24 physical: bge0 You can use zonecfg to change these settings, such as is described here. Often a reboot of the zone will be needed.